package com.jbp.utils;

import com.jbp.redis.RedisConfigService;
import com.jbp.service.PropertyService;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * 读取Property中的键值对，并缓存在redis中，减少对数据库的压力。注意：不要对变化频率很高的配置使用这个方法。
 */
public class PropertyCacheUtil {


    public static String getCachedProperty(PropertyService propertyService, RedisConfigService redisConfigService,
                                           String key) {
        long ttl = 1L * 60;
        return getCachedProperty(propertyService, redisConfigService, key, ttl);

    }

    public static String getCachedProperty(PropertyService propertyService, RedisConfigService redisConfigService,
                                           String key, long ttl)
    {
        String value = null;
        if(redisConfigService.exists(key)) {
            value = (String)redisConfigService.get(key);
        } else {
            value = propertyService.getV(key);
            // 5分钟过期
            redisConfigService.set(key, value, ttl);
        }
        return value;
    }

}
